def set_level(number):
    def set_func(func):
        def call_func():
            if number == 1:
                print(f"=========调用的number={number}==========")
            elif number == 2:
                print(f"=========调用的number={number}==========")
            # 返回被装饰的函数
            return func

        return call_func

    return set_func


# 带参数的装饰器，先执行set_level方法，有一个参数，
# 返回的是set_func()函数的引用，最后还是调用的这个@set_func装饰器
# 这样的好处就是固定一些不可修改的值
@set_level(1)
def func1():
    return "我是装饰器func1"


@set_level(2)
def func2():
    return "我是装饰器func2"


# func()获取的就是一个方法引用，再加上一个括号也可以执行
print(func1()())
print(func2()())
